#!/bin/bash

# 检测并安装dialog
check_dialog() {
    if ! which dialog &> /dev/null; then
        echo "正在安装dialog..."
        if grep -qi 'ubuntu' /etc/os-release; then
            sudo apt-get update && sudo apt-get install -y dialog
        elif grep -qi 'centos' /etc/os-release; then
            sudo yum install -y dialog
        else
            echo "不支持的Linux发行版"
            exit 1
        fi
    fi
}

# 确认系统版本
confirm_os() {
    source /etc/os-release
    dialog --backtitle "系统信息" --title "系统确认" \
        --yes-label "继续" --no-label "重新选择" \
        --yesno "检测到系统为：$NAME，版本为：${VERSION_ID}\n是否继续？" 10 60 
    if [ $? -ne 0 ]; then
    while true;do
        choice=$(dialog --backtitle "配置生成器" --title "选择系统版本" \
            --menu "请选择操作：" 15 50 4 \
            1 "Ubuntu 24.04" \
            2 "Ubuntu 20.04" \
            3 "退出" \
            2>&1 >/dev/tty)

        case $choice in
            1) dialog --yes-label "确定" --no-label "返回" --yesno "选择：\n系统：    Ubuntu\n版本：    24.04" 0 0 
                if [ $? -eq 0 ];then
                    return;
                fi
            ;;
            2) dialog --yes-label "确定" --no-label "返回" --yesno "选择：\n系统：    Ubuntu\n版本：    22.04" 0 0 
                if [ $? -eq 0 ];then
                    return;
                fi
            ;;
            *) 
                dialog --clear
                echo "用户取消操作"
                exit 0
            ;;
        esac
        done
    fi
}

# 主菜单
main_menu() {
    while true; do
        choice=$(dialog --backtitle "配置生成器" --title "主菜单" \
            --cancel-label "退出" \
            --menu "请选择操作：" 15 50 4 \
            1 "选择要执行的子脚本" \
            2 "生成配置文件" \
            2>&1 >/dev/tty)
        if [[ $? != 0 ]];then
            dialog --yesno "确认退出？" 0 0 
                if [[ $? == 0 ]];then
                    dialog --clear
                    echo "写入(待实现)"
                    return
                else
                    continue
                fi
        fi
        case $choice in
            1) select_scripts ;;
            2) generate_config ;;
            *) break ;;
        esac
    done
    dialog --clear
}

# 选择子脚本
select_scripts() {
    scripts=("script1" "脚本1" OFF "script2" "脚本2" OFF)
    
    selected=$(dialog --backtitle "脚本选择" --title "选择要执行的子脚本" \
        --checklist "使用空格键选择：" 15 50 4 \
        "${scripts[@]}" \
        2>&1 >/dev/tty)
    
    if [ $? -eq 0 ]; then
        echo "SELECTED_SCRIPTS=($selected)" > install.config
    fi
}

# 生成配置文件
generate_config() {
    if [ ! -f install.config ]; then
        dialog --msgbox "请先选择要执行的子脚本！" 8 40
        return
    fi
    
    source install.config
    echo -e "#!/bin/bash\n" > install.config
    for script in "${SELECTED_SCRIPTS[@]}"; do
        echo "执行脚本: $script"
        echo "RUN_${script^^}=1" >> install.config
    done
    
    dialog --msgbox "配置文件已生成！" 8 40
}

# 主程序
check_dialog
confirm_os
main_menu
